{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# docker-compose v3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 例\n",
    "\n",
    "```\n",
    "### docker-compose_sample.yml\n",
    "================================================\n",
    "version: \"3\"\n",
    "services:\n",
    "  web:\n",
    "    image: nginx\n",
    "    deploy:\n",
    "      replicas: 5\n",
    "      resources:\n",
    "        limits:\n",
    "          cpus: \"0.1\"\n",
    "          memory: 50M\n",
    "      restart_policy:\n",
    "        condition: on-failure\n",
    "    ports:\n",
    "      - \"80:80\"\n",
    "    networks:\n",
    "      - webnet\n",
    "networks:\n",
    "  webnet:\n",
    "================================================\n",
    "```\n",
    "\n",
    "* version\n",
    "    * docker-composeのバージョン\n",
    "        * swarmを使う場合は3以上である必要がある\n",
    "* services\n",
    "    * サービスを指定\n",
    "    * web\n",
    "        * webというサービスを指定\n",
    "    * image\n",
    "        * イメージを指定\n",
    "    * deploy\n",
    "        * デプロイに関する設定を記載(3以上)\n",
    "        * replicas\n",
    "            * webというサービスで起動するインスタンスの個数を指定\n",
    "        * resources\n",
    "            * リソースを指定\n",
    "            * limits\n",
    "                * それぞれのインスタンスのリソース制限を指定\n",
    "                * cpus: 0.1\n",
    "                    * それぞれのインスタンスで、それぞれ最大CPU10%まで使用可能\n",
    "                * memory: 50M\n",
    "                    * それぞれのインスタンスで、それぞれ最大メモリ50MBまで利用可能\n",
    "        * restart_policy\n",
    "            * コンテナをリスタートするときの挙動について\n",
    "            * condition: on-failure\n",
    "                * コンテナが異常な状態になったらコンテナを即再起動する\n",
    "    * ports\n",
    "        * ポートの設定。 \n",
    "    * networks\n",
    "        * ネットワークの設定\n",
    "        * \\- webnet\n",
    "            * webnetというロードバランシングされているネットワーク\n",
    "            * この例では、5つのインスタンスに共有している80番ポートを経由してバランシングされる"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
